using System.Collections.Generic;
using System.Windows.Forms;

namespace WIT.DAQ.Core;

/// <summary>
/// 自定义菜单
/// </summary>
public class CustomMenu
{
	/// <summary>
	/// 菜单显示的文本
	/// </summary>
	public string Text { get; set; } = string.Empty;


	/// <summary>
	/// 命名空间
	/// </summary>
	public string Namespace { get; set; } = string.Empty;


	/// <summary>
	/// 类名（类名不为空且方法名为空时，则按照命名空间+类名加载Form/UserControl，如果该类不是Form/UserControl则报错提示。）
	/// </summary>
	public string ClassName { get; set; } = string.Empty;


	/// <summary>
	/// 方法名（方法名非空，即表示点击此菜单时执行指定的方法。）
	/// </summary>
	public string MethodName { get; set; } = string.Empty;


	/// <summary>
	/// 子项（子项非空时，表示当前项为父菜单。）
	/// </summary>
	public List<CustomMenu> Items { get; set; } = new List<CustomMenu>();


	/// <summary>
	/// 是否允许重复打开Form/UserControl
	/// </summary>
	public bool AllowRepeat { get; set; } = true;


	/// <summary>
	/// 打开Form/UserControl时用于指定窗体状态
	/// </summary>
	public FormWindowState WindowState { get; set; }

	/// <summary>
	/// 打开UserControl时用于指定停靠方式
	/// </summary>
	public DockStyle Dock { get; set; }

	/// <summary>
	/// 程序启动后，自动执行一次此自定义菜单的功能
	/// </summary>
	public bool AutoExecute { get; set; }
}
